package email.mensagemAnexo;

import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class Gmail {

	public static void main(String[] args) {
		
		new Gmail().gmail();
		
	}

	public void gmail() {

		Properties props = new Properties();

		props.put("mail.smtp.host", "smtp.gmail.com");
		props.put("mail.smtp.socketFactory.port", "465");
		props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.port", "465");

		Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {

					protected PasswordAuthentication getPasswordAuthentication() {
						return new PasswordAuthentication("diegomacario1983@gmail.com", "bambinos");
					}
				});

		File folder = new File("C:\\Teste\\");

		List<File> listFiles = Arrays.asList(folder.listFiles());

		for (int i = 0; i < 107; i++) {

			try {

				Message message = new MimeMessage(session);

				message.setFrom(new InternetAddress("diegomacario1983@gmail.com"));

				Address[] toUser = InternetAddress.parse("xmluka@gmail.com");

				//int posicao = (int) ((Math.random() * listFiles.size()) + 1);

				MimeBodyPart mimeBodyPart = new MimeBodyPart();
				mimeBodyPart.setText("");

				MimeBodyPart mimeBodyPartFile = new MimeBodyPart();
				FileDataSource fileDataSource = new FileDataSource(new File(listFiles.get(i).getPath()));
				mimeBodyPartFile.setDataHandler(new DataHandler(fileDataSource));
				mimeBodyPartFile.setFileName(fileDataSource.getName());

				Multipart multipart = new MimeMultipart();
				multipart.addBodyPart(mimeBodyPart);
				multipart.addBodyPart(mimeBodyPartFile);

				message.setContent(multipart);

				message.setRecipients(Message.RecipientType.TO, toUser);
				//message.setSubject(Long.toHexString(Double.doubleToLongBits(Math.random())));
				message.setSubject(fileDataSource.getName());

				Transport.send(message);

			} catch (MessagingException e) {
				throw new RuntimeException(e);
			}

		}

	}

}
